package com.cc.timer;

import java.time.LocalDateTime;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class ScheduledExecutorServiceDemo {
    public static void main(String[] args) {
        ScheduledExecutorService service = Executors.newScheduledThreadPool(10);
        //一.延时设定时间（initialDelay）后执行第一次任务，每隔时间间隔（period）再次执行任务。
        // 参数：1、具体执行的任务   2、首次执行的延时时间
        //      3、任务执行间隔     4、间隔时间单位
        service.scheduleAtFixedRate(() ->
                System.out.println("执行任务A:" + LocalDateTime.now()),
                0, 3, TimeUnit.SECONDS);
        //二.延时设定时间（initialDelay）后只执行一次任务。
        service.schedule(()->System.out.println("我是任务B"+ LocalDateTime.now()), 0, TimeUnit.SECONDS);
        //三、延时设定时间（initialDelay）后执行第一次任务，随后每次任务执行完后延迟设定时间（delay）再次执行任务。
        service.scheduleWithFixedDelay(()->{System.out.println("我是任务C"+ LocalDateTime.now());},2,5,TimeUnit.SECONDS);
    }
}